package model;

import persistencia.AdministradorPersistenciaMaterial;


public class Material {
	private int codigo;
	private String nombre;
	private float stock;
	private float puntoPedido;
	private float stockMaximo;
	private float costo;
	
	
	public Material(int codigo, String nombre, float stock, float puntoPedido,
			float stockMaximo, float costo) {
		super();
		this.codigo = codigo;
		this.nombre = nombre;
		this.stock = stock;
		this.puntoPedido = puntoPedido;
		this.stockMaximo = stockMaximo;
		this.costo = costo;
		
	}
	
	/* DEVUELVE EL TOTAL A REPONER 
	
	public float controlarStock(){
		float totalAPedir = 0;
		if(stock <= puntoPedido){
			totalAPedir = stockMaximo - stock;
		}
		return totalAPedir;
	} */
	
	/* DEVUELVE EL CODIGO DE MATERIAL */
	
	public int getCodigo() {
		return codigo;
	}
	
	/* DEVUELVE NOMBRE DEL MATERIAL */

	public String getNombre() {
		return nombre;
	}
	
	/* DEVUELVE EL STOCK */

	public float getStock() {
		return stock;
	}
	
	/* DEVUELVE EL PUNTO DE PEDIDO */

	public float getPuntoPedido() {
		return puntoPedido;
	}
	
	/* DEVUELVE EL STOCK MAXIMO */

	public float getStockMaximo() {
		return stockMaximo;
	}
	
	/* DEVUELVE PRECIO */

	public float getPrecio() {
		return costo;
	}

	/* VERIFICA QUE SEA EL MATERIAL BUSCADO */
	
	public boolean sosElMaterial(int codigo) {
		return this.codigo == codigo;
	}
	
	/* VALIDA SI HACE FALTA REALIZAR UN PEDIDO DEL MATERIAL */
	
	public boolean realizarPedido() {
		return (this.stock <= this.puntoPedido);
	}
	
	/* VERIFICA QUE HAYA STOCK */
	
	public boolean tenesStock(float cantidad) {
		return (cantidad <= stock);
	}
	
	/* ACTUALIZA STOCK */

	public void actualizarStock(float stock) {
		this.stock = this.stock - stock;
		AdministradorPersistenciaMaterial.getInstancia().updateStock(this.codigo, this.stock);
		
	}
	
	/* GENERA EL VIEW */
	
	public MaterialView getView(){
		return new MaterialView(codigo,nombre,stock,puntoPedido,stockMaximo,costo);
	}
	
	/* DEVUELVE LA CANTIDAD A REPONER 
	
	public float getCantidadAReponer() {
		return (stockMaximo - stock);
	} */
	


}
